package com.jike.mahjong.service;

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

import com.jike.mahjong.model.ApplicationForm;
import com.jike.mahjong.model.Club;
import com.jike.mahjong.model.ClubPlayerMapping;
import com.jike.mahjong.model.Manager;
import com.jike.mahjong.model.NoticeMsg;
import com.jike.mahjong.model.Player;

public interface ClubService {


    /**
	 * 插入俱乐部
	 * @param club
	 * @return
	 */
    public Integer insertClub(Club club);
    /**
     * 根据id查询俱乐部信息
     * @param clubId
     * @return
     */
    public Club selectClubById(String clubId);
    /**
     * 根据玩家id查询俱乐部
     * @param playerId
     * @return
     */
    public Club selectClubByPlayerId(String playerId);
    /**
     * 根据id更新俱乐部信息(不包括disabled字段)
     * @param club
     * @return
     */
    public Integer updateClubInfo(Club club);
    
    /**
     * 新增俱乐部关系绑定
     * @param mapping
     * @return
     */
    public Integer insertClubMapping(ClubPlayerMapping mapping,Club club);
    /**
     * 解除玩家与俱乐部绑定
     * @return
     */
    public Integer deleteClubMapping(String playerId);
    /**
     * 根据玩家id查询已绑定信息
     * @param playerId
     * @return
     */
    public ClubPlayerMapping selectByPlayerId(String playerId);
    /**
     * 查询玩家信息
     * @param playerId
     * @return
     */
    public Player selectPlayerInfo(String playerId);
    /**
     * 查询
     * @param playerId
     * @return
     */
    public Manager checkPlayerIsManager(String playerId);
    /**
     * 查询管理员信息
     * @param map
     * @return
     */
    public Manager selectManager(Map map);
    /**
     * 查询俱乐部ID是否重复
     * @param clubId
     * @return
     */
    public Integer selectClubId(String clubId);
    /**
     * 公告推送
     * @param msg
     * @return
     */
    public Integer sendNoticeMsg(NoticeMsg msg);
    /**
     * 清除玩家数据
     * @return
     */
    public Integer clearPlayer(String playerId);
    /**
     * 添加游戏代理
     * @param model
     * @return
     */
    public Integer addAgent(Manager model,Map param);
    /**
     * 
     * @param param
     * @return
     * @throws UnsupportedEncodingException 
     */
    public List<ApplicationForm> getApplicationorm(Map param) throws UnsupportedEncodingException;
    /**
     * 升/降级
     * @param manager
     * @return
     */
    public Integer upOrDownLevel(String manager);
    /**
     * 更新备注
     * @param map
     * @return
     */
    public Integer updateAdminDesc(Map map);
    
    /**
     * 查询公告
     * @param map
     * @return
     */
    public Map getNoticeMsg(Map map);
}
